#include<iostream>
#include<cstring>
using namespace std;

char pd[105][805],base[105][105],db[805];
int n,m,k,h,w;
bool flag = true;


void hhh(int hang){
	if(hang > h)return;
	bool check = false;
	for(int q=1;q<=m;q++){
		if(base[hang%n][q]==pd[hang][1]){
			check = true;
			for(int e=1;e<=w;e++){
				db[e]=base[hang%n][(q+e-1)%m];
			}
			for(int e=1;e<=w;e++){
				if(pd[hang][e]!=db[e]){
					flag = false; 
					return;
				}
				hhh(hang+1);
			}
		}else{
			continue;	
		}
	}
	flag = check;
} 

int main(){
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>base[i][j];
			if(i==n)base[0][j]=base[i][j];
		}
		base[i][0]=base[i][m];
	}
	
	for(int i=1;i<=k;i++){
		cin>>h>>w;
		for(int j=1;j<=h;j++){
			for(int l=1;l<=w;l++){
				cin>>pd[j][l]; 
				if(j==h)pd[0][l]=pd[j][l];
			}
		}
		hhh(1);
		if(flag)	cout<<"YES"<<endl;
		else	cout<<"NO"<<endl;
	}
	
	return 0;
}
